
const app = new Vue({
  el:'#app',
  data:{
    book:[
        {
          id:1,
          name:'《斗罗大陆》',
          data: '2006-8',
          price:85.00,
          count:1
    },
      {
       id:2,
       name: '《自由》',
        data:'2266-7',
        price:77.00,
        count:1
      },
      {
        id:3,
        name:'《苍穹》',
        data: '1999-8',
        price:20.00,
        count:1
      },
      {
        id:4,
        name: '《生活》',
        data:'2200-7',
        price:90.00,
        count:1
      }
    ]
  },
  methods: {
    getFinalPrice(price) {
      return '￥' + price.toFixed(2)
    },
    decrement(index){
      this.book[index].count--;
      console.log(index)
    },
    increment(index) {
      this.book[index].count++;
      console.log(index)
    },
    deleteClick(index){
      this.book.splice(index,1)
    }
  },
  computed:{
    totalPrice(){
      let totalPrice = 0
      for (let i = 0 ; i < this.book.length ; i++){
        totalPrice += this.book[i].price*this.book[i].count
      }
      return totalPrice
      // let totalPrice = 0
      // for (let item of this.book){
      //   totalPrice += item.price*item.count
      // }
      // return totalPrice
    }
  },
    filters:{   //过滤器
      showPrice(price){
        return '￥'+price.toFixed(2)//toFixed()括号中填保留几位小数
      }
    }

})


//编程范式：命令式编程/声明式编程
//编程范式：面向对象编程（第一公民：对象）/函数式编程（第一公民：函数）
//filter/map/reduce
//filter中的回调函数有一个要求：必须返回一个boolean
 const nums = [10,20,111,222,444,40,50]
let total = nums.filter(n => n < 100).map(n => n*2).reduce((pre,n) => pre + n)
console.log(total)
// let total = nums.filter(function (n) {
//   return n <100
// }).map(function (n) {
//   return n*2
// }).reduce(function (preValue,n) {
//   return preValue + n
// })
// console.log(total)


// let newNums = nums.filter(function (n) {//filter是过滤
//   return n <100
// })
// //map函数的使用
// let new2Nums = newNums.map(function (n) {//map是映射
//   return n*2
// })
// console.log(new2Nums)
// //reduce函数的使用
// //reduce作用对数组中所有的内容进行汇总
// let total = new2Nums.reduce(function (preValue,n) {
//   return preValue + n;
// })
// console.log(total)